package com.tom.architect02.ui10.day11;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;

import com.tom.architect02.R;

public class MainActivityUI11 extends AppCompatActivity {
    private TouchView mTouchView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_ui11);

        mTouchView = findViewById(R.id.touch_view);
        mTouchView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                Log.e("TAG0607", "Activity::View.onTouch-- " + event.getAction());
                return false;
            }
        });

//        mTouchView.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                Log.e("TAG0607", "Activity onClick event-- ");
//            }
//        });
    }
}


// 当setOnTouchListener.onTouch 返回false， 同时不添加View.onClickListener,
//     E/TAG0607: ViewGroup dispatchTouchEvent-- 0
//     E/TAG0607: ViewGroup onInterceptTouchEvent-- 0
//     E/TAG0607: View dispatchTouchEvent-- 0
//     E/TAG0607: Activity::View.onTouch-- 0
//     E/TAG0607: View onTouchEvent-- 0
//     E/TAG0607: ViewGroup onTouchEvent-- 0




// setOnTouchListener.onTouch() 返回 false。 onTouchEvent 返回super.onTouchEvent().
// Down事件
//   E/TAG0607: ViewGroup dispatchTouchEvent-- 0
//   E/TAG0607: ViewGroup onInterceptTouchEvent-- 0
//   E/TAG0607: View dispatchTouchEvent-- 0
//   E/TAG0607: Activity::View.onTouch-- 0
//              View onTouchEvent-- 0
// Move事件
//   E/TAG0607: ViewGroup dispatchTouchEvent-- 2
//   E/TAG0607: ViewGroup onInterceptTouchEvent-- 2
//   E/TAG0607: View dispatchTouchEvent-- 2
//   E/TAG0607: Activity::View.onTouch-- 2
//              View onTouchEvent-- 2
// UP事件
//   E/TAG0607: ViewGroup dispatchTouchEvent-- 1
//   E/TAG0607: ViewGroup onInterceptTouchEvent-- 1
//   E/TAG0607: View dispatchTouchEvent-- 1
//   E/TAG0607: Activity::View.onTouch-- 1
//              View onTouchEvent-- 1
//              Activity onClick event--

/* 结论：一个事件(down,move,up)，先从父容器ViewGroup.dispatchTouchEvent 事件分发；
        再执行其 ViewGroup.onInterceptTouchEvent 拦截事件；

        再执行  View.dispatchTouchEvent 事件分发；
        最终执行Activity的 onTouch 触摸事件。
        最后执行  View onTouchEvent 事件。
        然后返回true，事件处理，不再给View 分发触摸事件。
*/

// onTouch 返回true
//  E/TAG0607: ViewGroup dispatchTouchEvent-- 0
//  E/TAG0607: ViewGroup onInterceptTouchEvent-- 0
//  E/TAG0607: View dispatchTouchEvent-- 0
//  E/TAG0607: Activity::View.onTouch-- 0
//  E/TAG0607: View onTouchEvent-- 0
//  E/TAG0607: ViewGroup dispatchTouchEvent-- 2
//  E/TAG0607: ViewGroup onInterceptTouchEvent-- 2
//  E/TAG0607: View dispatchTouchEvent-- 2
//  E/TAG0607: Activity::View.onTouch-- 2
//  E/TAG0607: View onTouchEvent-- 2
//  E/TAG0607: ViewGroup dispatchTouchEvent-- 1
//  E/TAG0607: ViewGroup onInterceptTouchEvent-- 1
//  E/TAG0607: View dispatchTouchEvent-- 1
//  E/TAG0607: Activity::View.onTouch-- 1
//  E/TAG0607: View onTouchEvent-- 1
//  不会触发onCLick事件。

/* 结论：一个事件，先从父容器ViewGroup.dispatchTouchEvent 事件分发；
        再执行其 ViewGroup.onInterceptTouchEvent 拦截事件；
        再执行  View.dispatchTouchEvent 分发事件；
        最终执行Activity的 onTouch 触摸事件。 然后返回false，给View 分发触摸事件。
        最后执行  View onTouchEvent 事件。
*/

// 将onClick去掉。

